Skip to content

颜色模型说明 - ColorModel

概述

colorJson / 颜色模型字符串用于在图像处理、图像识别、文字识别等接口中限定颜色范围。 本说明文档统一介绍所有支持的颜色表示方式,接口文档只需简单引用本页即可。

1. JSON 格式(原有写法,完全兼容)

json
[
  {
    "StartColor": "3278FA",
    "EndColor": "6496FF",
    "Type": 0,
    "ColorSpace": 0,
    "GrayMin": 0,
    "GrayMax": 0,
    "HMin": 0,
    "HMax": 0,
    "SMin": 0,
    "SMax": 0,
    "VMin": 0,
    "VMax": 0
  },
  {
    "StartColor": "#AABBCC",
    "EndColor": "#DDEEFF",
    "Type": 1
  }
]
  • StartColor / EndColor 支持以下形式:
    • #AARRGGBB
    • AARRGGBB
    • #RRGGBB
    • RRGGBB
  • StartColor 也可直接写偏色整串(等价于字符串规则 "RRGGBB-DRDGDB"),例如:
    • {"StartColor":"3278FA-101010","EndColor":"","Type":0}
  • EndColor 支持偏色模式(偏色值为十六进制,不是十进制):
    • @101010:R/G/B 各 ±0x10(6 位十六进制偏色,与 3278FA-101010 效果相同)
    • @10:单通道 ±0x10,其余通道默认 ±0x10
    • @+10+10+-10:R/G 只向上 +0x10,B 双向 ±0x10+ 只加不减,无符号或 - 为双向)
    • 示例:{"StartColor":"3278FA","EndColor":"@101010","Type":0}
    • 示例:{"StartColor":"3278FA","EndColor":"@+10+10+-10","Type":0}
  • Type 说明:
    • 0:正常匹配(保留在颜色范围内的像素)
    • 1:反色匹配(保留在颜色范围外的像素)
    • 2:正常交集匹配
    • 3:反色交集匹配
  • ColorSpace 说明(可选,默认 0):
    • 0BGRA 颜色空间(沿用 StartColor / EndColor 的颜色规则)
    • 1:灰度空间(使用 GrayMin / GrayMax
    • 2HSV 空间(使用 HMin/HMax/SMin/SMax/VMin/VMax
  • 灰度与 HSV 字段(可选,缺省按 0 处理):
    • GrayMinGrayMax:仅当 ColorSpace=1 时生效
    • HMinHMaxSMinSMaxVMinVMax:仅当 ColorSpace=2 时生效

2. 偏色区间格式:"RRGGBB-DRDGDB"(十六进制偏色)

偏色偏移量 均为十六进制

支持的偏色格式

格式示例说明
字符串颜色3278FA-101010R/G/B 各 ±0x10,区间 [2268EA, 4288FF]
带透明通道FF3278FA-00101010AA/RR/GG/BB 各 ±对应十六进制值
反色 + 偏色@3278FA-101010反色模式 + 十六进制偏色
JSON StartColor{"StartColor":"3278FA-101010","EndColor":"","Type":0}JSON 中整串写法
JSON EndColor @DRDGDB{"StartColor":"3278FA","EndColor":"@101010","Type":0}基准色 + 6 位十六进制偏色
JSON 分通道偏色{"StartColor":"3278FA","EndColor":"@+10+10+-10","Type":0}R/G 只向上,B 双向 ±
字符串规则AABBCC-101010|DDEEFF-202020竖线 | 分隔多条规则
颜色区间000000~FFFFFF起止色区间(非偏色,仍支持)

基本写法

  • 基本格式:"基准色-偏移量",例如:
    • "AABBCC-000000"
    • "DDEEFF-202020"
    • "3278FA-101010"
  • 多个区间用 | 分隔,例如:
    • "AABBCC-000000|DDEEFF-202020"
  • 含义:
    • 左侧为基准色 RRGGBB(或 AARRGGBB
    • 右侧 DRDGDB(带透明通道时为 8 位,如 00101010)表示各通道允许的 十六进制 偏移范围

偏色计算规则

3278FA-101010 为例:

  • 基准色:R=0x32,G=0x78,B=0xFA
  • 偏色:DR=0x10,DG=0x10,DB=0x10不是十进制 10
  • 结果区间:
    • StartColor = 2268EA(各通道减 0x10
    • EndColor = 4288FF(各通道加 0x10

JSON 中 @1010103278FA-101010 效果相同;@10 表示单通道 ±0x10,其余通道默认 ±0x10

反色模式

  • 在字符串前面加 @ 即表示反色模式:
    • "@AABBCC-000000|DDEEFF-202020"
    • "@3278FA-101010"

3. 颜色区间范围格式:"RRGGBB~RRGGBB"

  • 基本格式:"起始色~结束色",例如:
    • "000000~FFFFFF" 表示从 #000000#FFFFFF 的连续颜色范围
  • 支持多个区间,用 | 分隔,例如:
    • "AABBCC~BBCCDD|AAAAAA~FFFFFF"

反色模式

  • 在字符串前面加 @ 即表示反色模式:
    • "@AABBCC~BBCCDD|AAAAAA~FFFFFF"

4. 单独颜色格式

  • 支持直接填写单个颜色值:
    • #AARRGGBB
    • AARRGGBB
    • #RRGGBB
    • RRGGBB
  • 支持多个颜色,用 | 组合,例如:
    • "#FF0000|00FF00|0000FF"

反色模式

  • 在字符串前面加 @ 表示对这些颜色进行反选:
    • "@FF0000|00FF00"

5. 灰度规则(Gray)

  • 精确灰度:#G(等价 #G-0
    • 例如:"#40""#125"
  • 灰度区间:#G-dG
    • 例如:"#70-10",表示灰度范围 [60,80]

反色模式

  • 在字符串前面加 @ 表示对这些颜色进行反选:
    • 例如:"@#40"
    • 例如:"@#70-10"

6. HSV 规则(OpenCV 语义)

  • 精确 HSV:H.S.VH,S,V(等价偏移 0
    • 例如:"20.30.40""20,30,40"
  • HSV 区间:H.S.V-dH.dS.dV(或逗号分隔)
    • 例如:"20.30.40-0.0.0""20,30,40-0,0,0"
  • H 通道兼容:
    • H/dH 大于 179 时,自动按 0~360 输入换算到 OpenCV 0~179

反色模式

  • 在字符串前面加 @ 表示对这些颜色进行反选:
    • 例如:"@20.30.40"
    • 例如:"@20.30.40-0.0.0"

7. 使用建议

  • 简单场景可直接使用单独颜色或颜色区间格式,便于书写。
  • 需要精细控制时,推荐使用 JSON 格式并明确设置 Type
  • 不同接口中 colorJson 的业务含义略有差异(如过滤背景色 / 限制前景色),具体请参考对应接口文档的简要说明。